#include <erpc_version.h>
#if 11200 <= ERPC_VERSION_NUMBER
#include "c_lvgl_is_designer_server.h"
#else
#include "lvgl_is_designer.h"
#endif
#include "lvgl.h"
#include "lvgl_isd_resource.h"
#include <stdlib.h>

pLvObject isd_scr_act(void)
{
    pLvObject result;
    result = (pLvObject)lv_scr_act();

    return result;
}

void isd_scr_clear(void)
{

}

pLvObject isd_obj_create(pLvObject obj)
{
    static pLvObject  result;

    result = (pLvObject)lv_obj_create((lv_obj_t*)obj);

    return result;
}

void isd_obj_del(pLvObject obj)
{
    lv_obj_del((lv_obj_t*)obj);
}

void isd_obj_clean(pLvObject obj)
{
    lv_obj_clean((lv_obj_t*)obj);
}

void isd_obj_add_flag(pLvObject obj, uLvObjFlag flag)
{
    lv_obj_add_flag((lv_obj_t*)obj, (lv_obj_flag_t)flag);
}

void isd_obj_clear_flag(pLvObject obj, uLvObjFlag flag)
{
    lv_obj_clear_flag((lv_obj_t*)obj, (lv_obj_flag_t)flag);
}

void isd_obj_add_state(pLvObject obj, uLvState state)
{
    lv_obj_add_state((lv_obj_t*)obj, (lv_obj_flag_t)state);
}

void isd_obj_clear_state(pLvObject obj, uLvState state)
{
    lv_obj_clear_state((lv_obj_t*)obj, (lv_obj_flag_t)state);
}

void isd_obj_set_pos(pLvObject obj, iLvCoord x, iLvCoord y)
{
    lv_obj_set_pos((lv_obj_t*)obj, (lv_coord_t)x, (lv_coord_t)y);
}

void isd_obj_set_x(pLvObject obj, iLvCoord x)
{
    lv_obj_set_x((lv_obj_t*)obj, (lv_coord_t)x);
}

void isd_obj_set_y(pLvObject obj, iLvCoord y)
{
    lv_obj_set_y((lv_obj_t*)obj, (lv_coord_t)y);
}

void isd_obj_set_size(pLvObject obj, iLvCoord w, iLvCoord h)
{
    lv_obj_set_size((lv_obj_t*)obj, (lv_coord_t)w, (lv_coord_t)h);
}

void isd_obj_set_width(pLvObject obj, iLvCoord w)
{
    lv_obj_set_width((lv_obj_t*)obj, (lv_coord_t)w);
}

void isd_obj_set_height(pLvObject obj, iLvCoord h)
{
    lv_obj_set_height((lv_obj_t*)obj, (lv_coord_t)h);
}

void isd_obj_set_align(pLvObject obj, uLvAlign align)
{
    lv_obj_set_align((lv_obj_t*)obj, (lv_align_t)align);
}

void isd_obj_align(pLvObject obj, uLvAlign align, iLvCoord x_ofs, iLvCoord y_ofs)
{
    lv_obj_align((lv_obj_t*)obj, (lv_align_t)align, (lv_coord_t)x_ofs, (lv_coord_t)y_ofs);
}

void isd_obj_move_to(pLvObject obj, iLvCoord x, iLvCoord y)
{
    lv_obj_move_to((lv_obj_t*)obj, (lv_coord_t)x, (lv_coord_t)y);
}

// Widgets
pLvObject isd_arc_create(pLvObject obj)
{
    pLvObject result;

    result = (pLvObject)lv_arc_create((lv_obj_t*)obj);

    return result;
}

void isd_arc_set_start_angle(pLvObject obj, uint16_t start)
{
    lv_arc_set_start_angle((lv_obj_t*)obj, start);
}

void isd_arc_set_end_angle(pLvObject obj, uint16_t end)
{
    lv_arc_set_end_angle((lv_obj_t*)obj, end);
}

void isd_arc_set_angles(pLvObject obj, uint16_t start, uint16_t end)
{
    lv_arc_set_angles((lv_obj_t*)obj, start, end);
}

void isd_arc_set_bg_start_angle(pLvObject obj, uint16_t start)
{
    lv_arc_set_bg_start_angle((lv_obj_t*)obj, start);
}

void isd_arc_set_bg_end_angle(pLvObject obj, uint16_t end)
{
    lv_arc_set_bg_end_angle((lv_obj_t*)obj, end);
}

void isd_arc_set_bg_angles(pLvObject obj, uint16_t start, uint16_t end)
{
    lv_arc_set_bg_angles((lv_obj_t*)obj, start, end);
}

void isd_arc_set_rotation(pLvObject obj, uint16_t rotation)
{
    lv_arc_set_rotation((lv_obj_t*)obj, rotation);
}

void isd_arc_set_mode(pLvObject obj, uLvArcMode mode)
{
    lv_arc_set_mode((lv_obj_t*)obj, (lv_arc_mode_t)mode);
}

void isd_arc_set_value(pLvObject obj, int16_t value)
{
    lv_arc_set_value((lv_obj_t*)obj, value);
}

void isd_arc_set_range(pLvObject obj, int16_t min, int16_t max)
{
    lv_arc_set_range((lv_obj_t*)obj, min, max);
}

void isd_arc_set_change_rate(pLvObject obj, uint16_t rate)
{
    lv_arc_set_change_rate((lv_obj_t*)obj, rate);
}

pLvObject isd_bar_create(pLvObject obj)
{
    pLvObject result;

    result = (pLvObject)lv_bar_create((lv_obj_t*)obj);

    return result;
}

void isd_bar_set_value(pLvObject obj, int32_t value, int32_t anim)
{
    lv_bar_set_value((lv_obj_t*)obj, value, (lv_anim_enable_t)anim);
}

void isd_bar_set_start_value(pLvObject obj, int32_t start_value, int32_t anim)
{
    lv_bar_set_start_value((lv_obj_t*)obj, start_value, (lv_anim_enable_t)anim);
}

void isd_bar_set_range(pLvObject obj, int32_t min, int32_t max)
{
    lv_bar_set_range((lv_obj_t*)obj, min, max);
}

void isd_bar_set_mode(pLvObject obj, uLvBarMode mode)
{
    lv_bar_set_mode((lv_obj_t*)obj, (lv_bar_mode_t)mode);
}

pLvObject isd_btn_create(pLvObject obj)
{
    pLvObject result;

    result = (pLvObject)lv_btn_create((lv_obj_t*)obj);

    return result;
}

pLvObject isd_btnmatrix_create(pLvObject obj)
{
    pLvObject result;

    result = (pLvObject)lv_btnmatrix_create((lv_obj_t*)obj);

    return result;
}

void isd_btnmatrix_set_map(pLvObject obj, const list_binary_1_t * map)
{
    char **maps;
    maps = malloc(map->elementsCount * sizeof (char *));
    for (int i = 0; i < map->elementsCount; i++) {
        maps[i] = malloc(map->elements[i].dataLength);
        memcpy(maps[i], map->elements[i].data, map->elements[i].dataLength);
    }
    lv_btnmatrix_set_map((lv_obj_t*)obj, (const char **)maps);
    for (int i = 0; i < map->elementsCount; i++) {
        free(maps[i]);
    }
    free(maps);
}

pLvObject isd_canvas_create(pLvObject obj)
{
    pLvObject result;
    lv_color_t *cbuf = (lv_color_t *)malloc(LV_CANVAS_BUF_SIZE_TRUE_COLOR(100, 75));

    result = (pLvObject)lv_canvas_create((lv_obj_t*)obj);
    lv_canvas_set_buffer((lv_obj_t*)result, cbuf, 100, 75, LV_IMG_CF_TRUE_COLOR);

    return result;
}

void isd_canvas_set_px_color(pLvObject obj, iLvCoord x, iLvCoord y, uLvColor c)
{
    lv_canvas_set_px_color((lv_obj_t*)obj, (lv_coord_t)x, (lv_coord_t)y, (lv_color_t)c);
}

void isd_canvas_set_px_opa(pLvObject obj, iLvCoord x, iLvCoord y, uLvOpa opa)
{
    lv_canvas_set_px_opa((lv_obj_t*)obj, (lv_coord_t)x, (lv_coord_t)y, (lv_opa_t)opa);
}

void isd_canvas_set_palette(pLvObject obj, uint8_t id, uLvColor c)
{
    lv_canvas_set_palette((lv_obj_t*)obj, id, (lv_color_t)c);
}

void isd_canvas_fill_bg(pLvObject obj, uLvColor c, uLvOpa opa)
{
    lv_canvas_fill_bg((lv_obj_t*)obj, (lv_color_t)c, (lv_opa_t)opa);
}

pLvObject isd_checkbox_create(pLvObject obj)
{
    pLvObject result;

    result = (pLvObject)lv_checkbox_create((lv_obj_t*)obj);

    return result;
}

void isd_checkbox_set_text(pLvObject obj, const char * txt)
{
    lv_checkbox_set_text((lv_obj_t*)obj, txt);
}

pLvObject isd_dropdown_create(pLvObject obj)
{
    pLvObject result;

    result = (pLvObject)lv_dropdown_create((lv_obj_t*)obj);

    return result;
}

void isd_dropdown_set_text(pLvObject obj, const char * txt)
{
    lv_dropdown_set_text((lv_obj_t*)obj, txt);
}

void isd_dropdown_set_options(pLvObject obj, const char * options)
{
    lv_dropdown_set_options((lv_obj_t*)obj, options);
}

void isd_dropdown_add_option(pLvObject obj, const char * options, uint32_t pos)
{
    lv_dropdown_add_option((lv_obj_t*)obj, options, pos);
}

void isd_dropdown_clear_option(pLvObject obj)
{
    lv_dropdown_clear_options((lv_obj_t*)obj);
}

void isd_dropdown_set_selected(pLvObject obj, uint16_t sel_opt)
{
    lv_dropdown_set_selected((lv_obj_t*)obj, sel_opt);
}

void isd_dropdown_set_dir(pLvObject obj, uLvDir dir)
{
    lv_dropdown_set_dir((lv_obj_t*)obj, (lv_dir_t)dir);
}

void isd_dropdown_set_symbol(pLvObject obj, const char * symbol)
{
    lv_dropdown_set_symbol((lv_obj_t*)obj, symbol);
}

void isd_dropdown_set_selected_highlight(pLvObject obj, bool en)
{
    lv_dropdown_set_selected_highlight((lv_obj_t*)obj, en);
}

void isd_dropdown_open(pLvObject obj)
{
    lv_dropdown_open((lv_obj_t*)obj);
}

void isd_dropdown_close(pLvObject obj)
{
    lv_dropdown_close((lv_obj_t*)obj);
}

pLvGroup isd_group_create(void)
{
    pLvGroup result;

    result = (pLvGroup)lv_group_create();

    return result;
}

void isd_group_del(pLvGroup group)
{
    lv_group_del((lv_group_t*)group);
}

void isd_group_set_default(pLvGroup group)
{
    lv_group_set_default((lv_group_t*)group);
}

pLvGroup isd_group_get_default(void)
{
    pLvGroup result;

    result = (pLvGroup)lv_group_get_default();

    return result;
}

void isd_group_add_obj(pLvGroup group, pLvObject obj)
{
    lv_group_add_obj((lv_group_t*)group, (lv_obj_t*)obj);
}

void isd_group_swap_obj(pLvObject obj1, pLvObject obj2)
{
    lv_group_swap_obj((lv_obj_t*)obj1, (lv_obj_t*)obj2);
}

void isd_group_remove_obj(pLvObject obj)
{
    lv_group_remove_obj((lv_obj_t*)obj);
}

void isd_group_remove_all_objs(pLvGroup group)
{
    lv_group_remove_all_objs((lv_group_t*)group);
}

void isd_group_focus_obj(pLvObject obj)
{
    lv_group_focus_obj((lv_obj_t*)obj);
}

pLvObject isd_image_create(pLvObject obj)
{
    pLvObject result;

    result = (pLvObject)lv_img_create((lv_obj_t*)obj);

    return result;
}

void isd_img_set_src(pLvObject obj, const char * src)
{
    lv_img_dsc_t *img_dsc = lvgl_isd_resource_dsc(src);
    if (img_dsc != NULL) {
        lv_img_set_src((lv_obj_t*)obj, (const void *)img_dsc);
    }
}

void isd_img_set_offset_x(pLvObject obj, iLvCoord x)
{
    lv_img_set_offset_x((lv_obj_t*)obj, (lv_coord_t)x);
}

void isd_img_set_offset_y(pLvObject obj, iLvCoord y)
{
    lv_img_set_offset_y((lv_obj_t*)obj, (lv_coord_t)y);
}

void isd_img_set_angle(pLvObject obj, int16_t angle)
{
    lv_img_set_angle((lv_obj_t*)obj, angle);
}

void isd_img_set_pivot(pLvObject obj, iLvCoord x, iLvCoord y)
{
    lv_img_set_pivot((lv_obj_t*)obj, (lv_coord_t)x, (lv_coord_t)y);
}

void isd_img_set_zoom(pLvObject obj, uint16_t zoom)
{
    lv_img_set_zoom((lv_obj_t*)obj, zoom);
}

void isd_img_set_antialias(pLvObject obj, bool antialias)
{
    lv_img_set_antialias((lv_obj_t*)obj, antialias);
}

void isd_img_set_size_mode(pLvObject obj, uLvImgSizeMode mode)
{
    lv_img_set_size_mode((lv_obj_t*)obj, (lv_img_size_mode_t)mode);
}

pLvObject isd_label_create(pLvObject obj)
{
    pLvObject result;

    result = (pLvObject)lv_label_create((lv_obj_t*)obj);

    return result;
}

void isd_label_set_text(pLvObject obj, const char * text)
{
    lv_label_set_text((lv_obj_t*)obj, text);
}

pLvObject isd_line_create(pLvObject obj)
{
    pLvObject result;

    result = (pLvObject)lv_line_create((lv_obj_t*)obj);

    return result;
}

void isd_line_set_points(pLvObject obj, const binary_t * points, uint16_t point_num)
{
    static lv_point_t *point_a;

    point_a = (lv_point_t *)malloc(points->dataLength);
    memcpy(point_a, points->data, points->dataLength);
    lv_line_set_points((lv_obj_t*)obj, (const lv_point_t *)(point_a), point_num);
}

void isd_line_set_y_invert(pLvObject obj, bool en)
{
    lv_line_set_y_invert((lv_obj_t*)obj, en);
}

pLvObject isd_roller_create(pLvObject obj)
{
    pLvObject result;

    result = (pLvObject)lv_roller_create((lv_obj_t*)obj);

    return result;
}

void isd_roller_set_options(pLvObject obj, const char * options, uLvRollerMode mode)
{
    lv_roller_set_options((lv_obj_t*)obj, options, (lv_roller_mode_t)mode);
}

void isd_roller_set_selected(pLvObject obj, uint16_t sel_opt, int32_t anim)
{
    lv_roller_set_selected((lv_obj_t*)obj, sel_opt, (lv_anim_enable_t)anim);
}

void isd_roller_set_visible_row_count(pLvObject obj, uint8_t row_cnt)
{
    lv_roller_set_visible_row_count((lv_obj_t*)obj, row_cnt);
}

pLvObject isd_slider_create(pLvObject obj)
{
    pLvObject result;

    result = (pLvObject)lv_slider_create((lv_obj_t*)obj);

    return result;
}

void isd_slider_set_value(pLvObject obj, int32_t value, int32_t anim)
{
    lv_slider_set_value((lv_obj_t*)obj, value, (lv_anim_enable_t)anim);
}

void isd_slider_set_left_value(pLvObject obj, int32_t left_value, int32_t anim)
{
    lv_slider_set_left_value((lv_obj_t*)obj, left_value, (lv_anim_enable_t)anim);
}

void isd_slider_set_range(pLvObject obj, int32_t min, int32_t max)
{
    lv_slider_set_range((lv_obj_t*)obj, min, max);
}

void isd_slider_set_mode(pLvObject obj, uLvSliderMode mode)
{
    lv_slider_set_mode((lv_obj_t*)obj, (lv_slider_mode_t)mode);
}

pLvObject isd_switch_create(pLvObject obj)
{
    pLvObject result;

    result = (pLvObject)lv_switch_create((lv_obj_t*)obj);

    return result;
}

pLvObject isd_table_create(pLvObject obj)
{
    pLvObject result;

    result = (pLvObject)lv_table_create((lv_obj_t*)obj);

    return result;
}

void isd_table_set_cell_value(pLvObject obj, uint16_t row, uint16_t col, const char * txt)
{
    lv_table_set_cell_value((lv_obj_t*)obj, row, col, txt);
}

void isd_table_set_row_cnt(pLvObject obj, uint16_t row_cnt)
{
    lv_table_set_row_cnt((lv_obj_t*)obj, row_cnt);
}

void isd_table_set_col_cnt(pLvObject obj, uint16_t col_cnt)
{
    lv_table_set_col_cnt((lv_obj_t*)obj, col_cnt);
}

void isd_table_set_col_width(pLvObject obj, uint16_t col_id, iLvCoord w)
{
    lv_table_set_col_width((lv_obj_t*)obj, col_id, w);
}

void isd_table_add_cell_ctrl(pLvObject obj, uint16_t row, uint16_t col, uLvTableCellCtrl ctrl)
{
    lv_table_add_cell_ctrl((lv_obj_t*)obj, row, col, (lv_table_cell_ctrl_t)ctrl);
}

void isd_table_clear_cell_ctrl(pLvObject obj, uint16_t row, uint16_t col, uLvTableCellCtrl ctrl)
{
    lv_table_clear_cell_ctrl((lv_obj_t*)obj, row, col, (lv_table_cell_ctrl_t)ctrl);
}

pLvObject isd_textarea_create(pLvObject obj)
{
    pLvObject result;

    result = (pLvObject)lv_textarea_create((lv_obj_t*)obj);

    return result;
}

void isd_textarea_add_char(pLvObject obj, uint32_t c)
{
    lv_textarea_add_char((lv_obj_t*)obj, c);
}

void isd_textarea_add_text(pLvObject obj, const char * txt)
{
    lv_textarea_add_text((lv_obj_t*)obj, txt);
}

void isd_textarea_del_char(pLvObject obj)
{
    lv_textarea_del_char((lv_obj_t*)obj);
}

void isd_textarea_del_char_forward(pLvObject obj)
{
    lv_textarea_del_char_forward((lv_obj_t*)obj);
}

void isd_textarea_set_text(pLvObject obj, const char * txt)
{
    lv_textarea_set_text((lv_obj_t*)obj, txt);
}

void isd_textarea_set_placeholder_text(pLvObject obj, const char * txt)
{
    lv_textarea_set_placeholder_text((lv_obj_t*)obj, txt);
}

void isd_textarea_set_cursor_pos(pLvObject obj, int32_t pos)
{
    lv_textarea_set_cursor_pos((lv_obj_t*)obj, pos);
}

void isd_textarea_set_cursor_click_pos(pLvObject obj, bool en)
{
    lv_textarea_set_cursor_click_pos((lv_obj_t*)obj, en);
}

void isd_textarea_set_password_mode(pLvObject obj, bool en)
{
    lv_textarea_set_password_mode((lv_obj_t*)obj, en);
}

void isd_textarea_set_one_line(pLvObject obj, bool en)
{
    lv_textarea_set_one_line((lv_obj_t*)obj, en);
}

void isd_textarea_set_accepted_chars(pLvObject obj, const char * chars)
{
    lv_textarea_set_accepted_chars((lv_obj_t*)obj, chars);
}

void isd_textarea_set_max_length(pLvObject obj, uint32_t num)
{
    lv_textarea_set_max_length((lv_obj_t*)obj, num);
}

void isd_textarea_set_insert_replace(pLvObject obj, const char * txt)
{
    lv_textarea_set_insert_replace((lv_obj_t*)obj, txt);
}

void isd_textarea_set_text_selection(pLvObject obj, bool en)
{
    lv_textarea_set_text_selection((lv_obj_t*)obj, en);
}

void isd_textarea_set_password_show_time(pLvObject obj, uint16_t time)
{
    lv_textarea_set_password_show_time((lv_obj_t*)obj, time);
}

void isd_textarea_set_align(pLvObject obj, uLvTextAlign align)
{
    lv_textarea_set_align((lv_obj_t*)obj, (lv_text_align_t)align);
}

void isd_textarea_clear_selection(pLvObject obj)
{
    lv_textarea_clear_selection((lv_obj_t*)obj);
}

void isd_textarea_cursor_right(pLvObject obj)
{
    lv_textarea_cursor_right((lv_obj_t*)obj);
}

void isd_textarea_cursor_left(pLvObject obj)
{
    lv_textarea_cursor_left((lv_obj_t*)obj);
}

void isd_textarea_cursor_down(pLvObject obj)
{
    lv_textarea_cursor_down((lv_obj_t*)obj);
}

void isd_textarea_cursor_up(pLvObject obj)
{
    lv_textarea_cursor_up((lv_obj_t*)obj);
}

// Extra Widgets
pLvObject isd_calendar_create(pLvObject obj)
{
    pLvObject result;

    result = (pLvObject)lv_calendar_create((lv_obj_t*)obj);

    return result;
}

void isd_calendar_set_today_date(pLvObject obj, uint32_t year, uint32_t month, uint32_t day)
{
    lv_calendar_set_today_date((lv_obj_t*)obj, year, month, day);
}

void isd_calendar_set_showed_date(pLvObject obj, uint32_t year, uint32_t month)
{
    lv_calendar_set_showed_date((lv_obj_t*)obj, year, month);
}

void isd_calendar_set_highlighted_dates(pLvObject obj, const binary_t * highlighted, uint16_t date_num)
{
    lv_calendar_date_t *hls;
    hls = (lv_calendar_date_t *)malloc(sizeof (lv_calendar_date_t) * date_num);
    memcpy(hls, highlighted->data, highlighted->dataLength);
    lv_calendar_set_highlighted_dates((lv_obj_t*)obj, hls, date_num);
}

pLvObject isd_chart_create(pLvObject obj)
{
    pLvObject result;

    result = (pLvObject)lv_chart_create((lv_obj_t*)obj);

    return result;
}

void isd_chart_set_type(pLvObject obj, uLvChartType chart_type)
{
    lv_chart_set_type((lv_obj_t*)obj, (lv_chart_type_t)chart_type);
}

void isd_chart_set_point_count(pLvObject obj, uint16_t cnt)
{
    lv_chart_set_type((lv_obj_t*)obj, cnt);
}

void isd_chart_set_range(pLvObject obj, uLvChartAxis axis, iLvCoord min, iLvCoord max)
{
    lv_chart_set_range((lv_obj_t*)obj, (lv_chart_axis_t)axis, (lv_coord_t)min, (lv_coord_t)max);
}

void isd_chart_set_update_mode(pLvObject obj, uLvChartUpdateMode update_mode)
{
    lv_chart_set_update_mode((lv_obj_t*)obj, (lv_chart_update_mode_t)update_mode);
}

void isd_chart_set_div_line_count(pLvObject obj, uint8_t hdiv, uint8_t vdiv)
{
    lv_chart_set_div_line_count((lv_obj_t*)obj, hdiv, vdiv);
}

void isd_chart_set_zoom_x(pLvObject obj, uint16_t zoom_x)
{
    lv_chart_set_zoom_x((lv_obj_t*)obj, zoom_x);
}

void isd_chart_set_zoom_y(pLvObject obj, uint16_t zoom_y)
{
    lv_chart_set_zoom_y((lv_obj_t*)obj, zoom_y);
}

pLvObject isd_colorwheel_create(pLvObject obj, bool knob_recolor)
{
    pLvObject result;

    result = (pLvObject)lv_colorwheel_create((lv_obj_t*)obj, knob_recolor);

    return result;
}

bool isd_colorwheel_set_hsv(pLvObject obj, const LvColorHSV * hsv)
{
    bool result;
    lv_color_hsv_t cw_hsv;
    cw_hsv = *(lv_color_hsv_t*)hsv;

    result = lv_colorwheel_set_hsv((lv_obj_t*)obj, cw_hsv);

    return result;
}

bool isd_colorwheel_set_rgb(pLvObject obj, uLvColor color)
{
    return lv_colorwheel_set_rgb((lv_obj_t*)obj, (lv_color_t)color);
}

void isd_colorwheel_set_mode(pLvObject obj, uLvColorWheelMode mode)
{
    lv_colorwheel_set_mode((lv_obj_t*)obj, (lv_colorwheel_mode_t)mode);
}

void isd_colorwheel_set_mode_fixed(pLvObject obj, bool fixed)
{
    lv_colorwheel_set_mode_fixed((lv_obj_t*)obj, fixed);
}

pLvObject isd_keyboard_create(pLvObject obj)
{
    pLvObject result;

    result = (pLvObject)lv_keyboard_create((lv_obj_t*)obj);

    return result;
}

void isd_keyboard_set_mode(pLvObject obj, uLvKeyBoardMode mode)
{
    lv_keyboard_set_mode((lv_obj_t*)obj, (lv_keyboard_mode_t)mode);
}

void isd_keyboard_set_popovers(pLvObject obj, bool en)
{
    lv_keyboard_set_popovers((lv_obj_t*)obj, en);
}

pLvObject isd_led_create(pLvObject obj)
{
    pLvObject result;

    result = (pLvObject)lv_led_create((lv_obj_t*)obj);

    return result;
}

void isd_led_set_color(pLvObject obj, uLvColor color)
{
    lv_led_set_color((lv_obj_t*)obj, (lv_color_t)color);
}

void isd_led_set_brightness(pLvObject obj, uint8_t bright)
{
    lv_led_set_brightness((lv_obj_t*)obj, bright);
}

void isd_led_on(pLvObject obj)
{
    lv_led_on((lv_obj_t*)obj);
}

void isd_led_off(pLvObject obj)
{
    lv_led_off((lv_obj_t*)obj);
}

void isd_led_toggle(pLvObject obj)
{
    lv_led_toggle((lv_obj_t*)obj);
}

pLvObject isd_tabview_create(pLvObject obj, uLvDir tab_pos, iLvCoord tab_size)
{
    pLvObject result;

    result = (pLvObject)lv_tabview_create((lv_obj_t*)obj, (lv_dir_t)tab_pos, (lv_coord_t)tab_size);

    return result;
}

pLvObject isd_tabview_add_tab(pLvObject obj, const char * name)
{
    pLvObject result;

    result = (pLvObject)lv_tabview_add_tab((lv_obj_t*)obj, name);

    return result;
}

void isd_tabview_set_act(pLvObject obj, uint32_t id, int32_t anim)
{
    lv_tabview_set_act((lv_obj_t*)obj, id, (lv_anim_enable_t)anim);
}


// Object style
void isd_obj_add_style(pLvObject obj, pLvStyle style, uLvStyleSelector selector)
{
    lv_obj_add_style((lv_obj_t*)obj, (lv_style_t *)style, (lv_style_selector_t)selector);
}

void isd_obj_remove_style(pLvObject obj, pLvStyle style, uLvStyleSelector selector)
{
    lv_obj_remove_style((lv_obj_t*)obj, (lv_style_t *)style, (lv_style_selector_t)selector);
}

void isd_obj_remove_style_all(pLvObject obj)
{
    lv_obj_remove_style_all((lv_obj_t*)obj);
}

void isd_obj_set_style_width(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_width((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_min_width(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_min_width((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_max_width(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_max_width((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_height(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_height((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_min_height(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_min_height((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_max_height(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_max_height((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_size(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_size((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_x(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_x((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_y(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_y((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_align(pLvObject obj, uLvAlign align, uLvStyleSelector selector)
{
    lv_obj_set_style_width((lv_obj_t*)obj, (lv_align_t)align, (lv_style_selector_t)selector);
}

void isd_obj_set_style_transform_width(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_transform_width((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_transform_height(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_transform_height((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_translate_x(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_translate_x((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_translate_y(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_translate_y((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_transform_zoom(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_transform_zoom((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_transform_angle(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_transform_angle((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_pad_top(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_pad_top((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_pad_bottom(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_pad_bottom((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_pad_left(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_pad_left((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_pad_right(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_pad_right((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_pad_all(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_pad_all((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_pad_hor(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_pad_hor((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_pad_ver(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_pad_ver((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_pad_row(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_pad_row((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_pad_column(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_pad_column((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_pad_gap(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_pad_gap((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_bg_color(pLvObject obj, uLvColor color, uLvStyleSelector selector)
{
    lv_obj_set_style_bg_color((lv_obj_t*)obj, (lv_color_t)color, (lv_style_selector_t)selector);
}

void isd_obj_set_style_bg_color_filtered(pLvObject obj, uLvColor color, uLvStyleSelector selector)
{
#if (LVGL_VERSION_MAJOR == 8) && (LVGL_VERSION_MINOR < 3)
    lv_obj_set_style_bg_color_filtered((lv_obj_t*)obj, (lv_color_t)color, (lv_style_selector_t)selector);
#endif
}

void isd_obj_set_style_bg_opa(pLvObject obj, uLvOpa opa, uLvStyleSelector selector)
{
    lv_obj_set_style_bg_opa((lv_obj_t*)obj, (lv_opa_t)opa, (lv_style_selector_t)selector);
}

void isd_obj_set_style_bg_grad_color(pLvObject obj, uLvColor color, uLvStyleSelector selector)
{
    lv_obj_set_style_bg_grad_color((lv_obj_t*)obj, (lv_color_t)color, (lv_style_selector_t)selector);
}

void isd_obj_set_style_bg_grad_color_filtered(pLvObject obj, uLvColor color, uLvStyleSelector selector)
{
#if (LVGL_VERSION_MAJOR == 8) && (LVGL_VERSION_MINOR < 3)
    lv_obj_set_style_bg_grad_color_filtered((lv_obj_t*)obj, (lv_color_t)color, (lv_style_selector_t)selector);
#endif
}

void isd_obj_set_style_bg_grad_dir(pLvObject obj, uLvGradDir dir, uLvStyleSelector selector)
{
    lv_obj_set_style_bg_grad_dir((lv_obj_t*)obj, (lv_dir_t)dir, (lv_style_selector_t)selector);
}

void isd_obj_set_style_bg_main_stop(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_bg_main_stop((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_bg_grad_stop(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_bg_grad_stop((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_bg_grad(pLvObject obj, const binary_t * grad_dsc, uLvStyleSelector selector)
{
    lv_obj_set_style_bg_grad((lv_obj_t*)obj, (const lv_grad_dsc_t *)grad_dsc, (lv_style_selector_t)selector);
}

void isd_obj_set_style_bg_dither_mode(pLvObject obj, uLvDitherMode value, uLvStyleSelector selector)
{
    lv_obj_set_style_bg_dither_mode((lv_obj_t*)obj, (lv_dither_mode_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_bg_img_src(pLvObject obj, const binary_t * value, uLvStyleSelector selector)
{
    lv_img_dsc_t *img_dsc = malloc(sizeof (lv_img_dsc_t));
    memcpy(img_dsc, value->data, sizeof (lv_img_dsc_t));
    img_dsc->data = malloc(img_dsc->data_size);
    memcpy((void*)img_dsc->data, value->data + sizeof (lv_img_dsc_t), img_dsc->data_size);
    lv_obj_set_style_bg_img_src((lv_obj_t*)obj, (const void *)img_dsc, (lv_style_selector_t)selector);
}

void isd_obj_set_style_bg_img_opa(pLvObject obj, uLvOpa opa, uLvStyleSelector selector)
{
    lv_obj_set_style_bg_img_opa((lv_obj_t*)obj, (lv_opa_t)opa, (lv_style_selector_t)selector);
}

void isd_obj_set_style_bg_img_recolor(pLvObject obj, uLvColor color, uLvStyleSelector selector)
{
    lv_obj_set_style_bg_img_recolor((lv_obj_t*)obj, (lv_color_t)color, (lv_style_selector_t)selector);
}

void isd_obj_set_style_bg_img_recolor_filtered(pLvObject obj, uLvColor color, uLvStyleSelector selector)
{
#if (LVGL_VERSION_MAJOR == 8) && (LVGL_VERSION_MINOR < 3)
    lv_obj_set_style_bg_img_recolor_filtered((lv_obj_t*)obj, (lv_color_t)color, (lv_style_selector_t)selector);
#endif
}

void isd_obj_set_style_bg_img_recolor_opa(pLvObject obj, uLvOpa opa, uLvStyleSelector selector)
{
    lv_obj_set_style_bg_img_recolor_opa((lv_obj_t*)obj, (lv_opa_t)opa, (lv_style_selector_t)selector);
}

void isd_obj_set_style_bg_img_tiled(pLvObject obj, bool value, uLvStyleSelector selector)
{
    lv_obj_set_style_bg_img_tiled((lv_obj_t*)obj, value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_border_color(pLvObject obj, uLvColor color, uLvStyleSelector selector)
{
    lv_obj_set_style_border_color((lv_obj_t*)obj, (lv_color_t)color, (lv_style_selector_t)selector);
}

void isd_obj_set_style_border_color_filtered(pLvObject obj, uLvColor color, uLvStyleSelector selector)
{
#if (LVGL_VERSION_MAJOR == 8) && (LVGL_VERSION_MINOR < 3)
    lv_obj_set_style_border_color_filtered((lv_obj_t*)obj, (lv_color_t)color, (lv_style_selector_t)selector);
#endif
}

void isd_obj_set_style_border_opa(pLvObject obj, uLvOpa opa, uLvStyleSelector selector)
{
    lv_obj_set_style_border_opa((lv_obj_t*)obj, (lv_opa_t)opa, (lv_style_selector_t)selector);
}

void isd_obj_set_style_border_width(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_border_width((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_border_side(pLvObject obj, uLvBorderSide value, uLvStyleSelector selector)
{
    lv_obj_set_style_border_side((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_border_post(pLvObject obj, bool value, uLvStyleSelector selector)
{
    lv_obj_set_style_border_post((lv_obj_t*)obj, value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_outline_width(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_outline_width((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_outline_color(pLvObject obj, uLvColor color, uLvStyleSelector selector)
{
    lv_obj_set_style_outline_color((lv_obj_t*)obj, (lv_color_t)color, (lv_style_selector_t)selector);
}

void isd_obj_set_style_outline_color_filtered(pLvObject obj, uLvColor color, uLvStyleSelector selector)
{
#if (LVGL_VERSION_MAJOR == 8) && (LVGL_VERSION_MINOR < 3)
    lv_obj_set_style_outline_color_filtered((lv_obj_t*)obj, (lv_color_t)color, (lv_style_selector_t)selector);
#endif
}

void isd_obj_set_style_outline_opa(pLvObject obj, uLvOpa opa, uLvStyleSelector selector)
{
    lv_obj_set_style_outline_opa((lv_obj_t*)obj, (lv_opa_t)opa, (lv_style_selector_t)selector);
}

void isd_obj_set_style_outline_pad(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_outline_pad((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_shadow_width(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_shadow_width((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_shadow_ofs_x(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_shadow_ofs_x((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_shadow_ofs_y(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_shadow_ofs_y((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_shadow_spread(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_shadow_spread((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_shadow_color(pLvObject obj, uLvColor color, uLvStyleSelector selector)
{
    lv_obj_set_style_shadow_color((lv_obj_t*)obj, (lv_color_t)color, (lv_style_selector_t)selector);
}

void isd_obj_set_style_shadow_color_filtered(pLvObject obj, uLvColor color, uLvStyleSelector selector)
{
#if (LVGL_VERSION_MAJOR == 8) && (LVGL_VERSION_MINOR < 3)
    lv_obj_set_style_shadow_color_filtered((lv_obj_t*)obj, (lv_color_t)color, (lv_style_selector_t)selector);
#endif
}

void isd_obj_set_style_shadow_opa(pLvObject obj, uLvOpa opa, uLvStyleSelector selector)
{
    lv_obj_set_style_shadow_opa((lv_obj_t*)obj, (lv_opa_t)opa, (lv_style_selector_t)selector);
}

void isd_obj_set_style_img_opa(pLvObject obj, uLvOpa opa, uLvStyleSelector selector)
{
    lv_obj_set_style_img_opa((lv_obj_t*)obj, (lv_opa_t)opa, (lv_style_selector_t)selector);
}

void isd_obj_set_style_img_recolor(pLvObject obj, uLvColor color, uLvStyleSelector selector)
{
    lv_obj_set_style_img_recolor((lv_obj_t*)obj, (lv_color_t)color, (lv_style_selector_t)selector);
}

void isd_obj_set_style_img_recolor_filtered(pLvObject obj, uLvColor color, uLvStyleSelector selector)
{
#if (LVGL_VERSION_MAJOR == 8) && (LVGL_VERSION_MINOR < 3)
    lv_obj_set_style_img_recolor_filtered((lv_obj_t*)obj, (lv_color_t)color, (lv_style_selector_t)selector);
#endif
}

void isd_obj_set_style_img_recolor_opa(pLvObject obj, uLvOpa opa, uLvStyleSelector selector)
{
    lv_obj_set_style_img_recolor_opa((lv_obj_t*)obj, (lv_opa_t)opa, (lv_style_selector_t)selector);
}

void isd_obj_set_style_line_width(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_line_width((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_line_dash_width(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_line_dash_width((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_line_dash_gap(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_line_dash_gap((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_line_rounded(pLvObject obj, bool value, uLvStyleSelector selector)
{
    lv_obj_set_style_line_rounded((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_line_color(pLvObject obj, uLvColor color, uLvStyleSelector selector)
{
    lv_obj_set_style_line_color((lv_obj_t*)obj, (lv_color_t)color, (lv_style_selector_t)selector);
}

void isd_obj_set_style_line_color_filtered(pLvObject obj, uLvColor color, uLvStyleSelector selector)
{
#if (LVGL_VERSION_MAJOR == 8) && (LVGL_VERSION_MINOR < 3)
    lv_obj_set_style_line_color_filtered((lv_obj_t*)obj, (lv_color_t)color, (lv_style_selector_t)selector);
#endif
}

void isd_obj_set_style_line_opa(pLvObject obj, uLvOpa opa, uLvStyleSelector selector)
{
    lv_obj_set_style_line_opa((lv_obj_t*)obj, (lv_opa_t)opa, (lv_style_selector_t)selector);
}

void isd_obj_set_style_arc_width(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_arc_width((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_arc_rounded(pLvObject obj, bool value, uLvStyleSelector selector)
{
    lv_obj_set_style_arc_rounded((lv_obj_t*)obj, value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_arc_color(pLvObject obj, uLvColor color, uLvStyleSelector selector)
{
    lv_obj_set_style_arc_color((lv_obj_t*)obj, (lv_color_t)color, (lv_style_selector_t)selector);
}

void isd_obj_set_style_arc_color_filtered(pLvObject obj, uLvColor color, uLvStyleSelector selector)
{
#if (LVGL_VERSION_MAJOR == 8) && (LVGL_VERSION_MINOR < 3)
    lv_obj_set_style_arc_color_filtered((lv_obj_t*)obj, (lv_color_t)color, (lv_style_selector_t)selector);
#endif
}

void isd_obj_set_style_arc_opa(pLvObject obj, uLvOpa opa, uLvStyleSelector selector)
{
    lv_obj_set_style_arc_opa((lv_obj_t*)obj, (lv_opa_t)opa, (lv_style_selector_t)selector);
}

void isd_obj_set_style_arc_img_src(pLvObject obj, const binary_t * value, uLvStyleSelector selector)
{
    lv_obj_set_style_arc_img_src((lv_obj_t*)obj, (const void *)value->data, (lv_style_selector_t)selector);
}

void isd_obj_set_style_text_color(pLvObject obj, uLvColor color, uLvStyleSelector selector)
{
    lv_obj_set_style_text_color((lv_obj_t*)obj, (lv_color_t)color, (lv_style_selector_t)selector);
}

void isd_obj_set_style_text_color_filtered(pLvObject obj, uLvColor color, uLvStyleSelector selector)
{
#if (LVGL_VERSION_MAJOR == 8) && (LVGL_VERSION_MINOR < 3)
    lv_obj_set_style_text_color_filtered((lv_obj_t*)obj, (lv_color_t)color, (lv_style_selector_t)selector);
#endif
}

void isd_obj_set_style_text_opa(pLvObject obj, uLvOpa opa, uLvStyleSelector selector)
{
    lv_obj_set_style_text_opa((lv_obj_t*)obj, (lv_opa_t)opa, (lv_style_selector_t)selector);
}

void isd_obj_set_style_text_font(pLvObject obj, pLvTextFont value, uLvStyleSelector selector)
{
    lv_obj_set_style_text_font((lv_obj_t*)obj, (const lv_font_t*)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_text_letter_space(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_text_letter_space((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_text_line_space(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_text_line_space((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_text_decor(pLvObject obj, uLvTextDecor value, uLvStyleSelector selector)
{
    lv_obj_set_style_text_decor((lv_obj_t*)obj, (lv_text_decor_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_text_align(pLvObject obj, uLvTextAlign align, uLvStyleSelector selector)
{
    lv_obj_set_style_text_align((lv_obj_t*)obj, (lv_text_align_t)align, (lv_style_selector_t)selector);
}

void isd_obj_set_style_radius(pLvObject obj, iLvCoord value, uLvStyleSelector selector)
{
    lv_obj_set_style_radius((lv_obj_t*)obj, (lv_coord_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_clip_corner(pLvObject obj, bool value, uLvStyleSelector selector)
{
    lv_obj_set_style_clip_corner((lv_obj_t*)obj, value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_opa(pLvObject obj, uLvOpa opa, uLvStyleSelector selector)
{
    lv_obj_set_style_opa((lv_obj_t*)obj, (lv_opa_t)opa, (lv_style_selector_t)selector);
}

void isd_obj_set_style_color_filter_opa(pLvObject obj, uLvOpa opa, uLvStyleSelector selector)
{
    lv_obj_set_style_color_filter_opa((lv_obj_t*)obj, (lv_opa_t)opa, (lv_style_selector_t)selector);
}

void isd_obj_set_style_anim_time(pLvObject obj, uint32_t value, uLvStyleSelector selector)
{
    lv_obj_set_style_anim_time((lv_obj_t*)obj, value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_anim_speed(pLvObject obj, uint32_t value, uLvStyleSelector selector)
{
    lv_obj_set_style_anim_speed((lv_obj_t*)obj, value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_blend_mode(pLvObject obj, uLvBlendMode value, uLvStyleSelector selector)
{
    lv_obj_set_style_blend_mode((lv_obj_t*)obj, (lv_blend_mode_t)value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_layout(pLvObject obj, uint16_t value, uLvStyleSelector selector)
{
    lv_obj_set_style_layout((lv_obj_t*)obj, value, (lv_style_selector_t)selector);
}

void isd_obj_set_style_base_dir(pLvObject obj, uLvBaseDir value, uLvStyleSelector selector)
{
    lv_obj_set_style_base_dir((lv_obj_t*)obj, (lv_base_dir_t)value, (lv_style_selector_t)selector);
}

// Style System
pLvStyle isd_style_init(void)
{
    lv_style_t *style;

    style = malloc(sizeof(lv_style_t));
    lv_style_init(style);

    return (pLvStyle)style;
}

void isd_style_reset(pLvStyle style)
{
    lv_style_reset((lv_style_t *)style);
}

bool isd_style_is_empty(pLvStyle style)
{
    return lv_style_is_empty((lv_style_t *)style);
}

void isd_style_set_size(pLvStyle style, iLvCoord value)
{
    lv_style_set_size((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_pad_all(pLvStyle style, iLvCoord value)
{
    lv_style_set_pad_all((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_pad_hor(pLvStyle style, iLvCoord value)
{
    lv_style_set_pad_hor((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_pad_ver(pLvStyle style, iLvCoord value)
{
    lv_style_set_pad_ver((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_pad_gap(pLvStyle style, iLvCoord value)
{
    lv_style_set_pad_gap((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_width(pLvStyle style, iLvCoord value)
{
    lv_style_set_width((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_min_width(pLvStyle style, iLvCoord value)
{
    lv_style_set_min_width((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_max_width(pLvStyle style, iLvCoord value)
{
    lv_style_set_max_width((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_height(pLvStyle style, iLvCoord value)
{
    lv_style_set_height((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_min_height(pLvStyle style, iLvCoord value)
{
    lv_style_set_min_height((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_max_height(pLvStyle style, iLvCoord value)
{
    lv_style_set_max_height((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_x(pLvStyle style, iLvCoord value)
{
    lv_style_set_x((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_y(pLvStyle style, iLvCoord value)
{
    lv_style_set_y((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_align(pLvStyle style, uLvAlign align)
{
    lv_style_set_align((lv_style_t *)style, (lv_align_t)align);
}

void isd_style_set_transform_width(pLvStyle style, iLvCoord value)
{
    lv_style_set_transform_width((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_transform_height(pLvStyle style, iLvCoord value)
{
    lv_style_set_transform_height((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_translate_x(pLvStyle style, iLvCoord value)
{
    lv_style_set_translate_x((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_translate_y(pLvStyle style, iLvCoord value)
{
    lv_style_set_translate_y((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_transform_zoom(pLvStyle style, iLvCoord value)
{
    lv_style_set_transform_zoom((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_transform_angle(pLvStyle style, iLvCoord value)
{
    lv_style_set_transform_angle((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_pad_top(pLvStyle style, iLvCoord value)
{
    lv_style_set_pad_top((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_pad_bottom(pLvStyle style, iLvCoord value)
{
    lv_style_set_pad_bottom((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_pad_left(pLvStyle style, iLvCoord value)
{
    lv_style_set_pad_left((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_pad_right(pLvStyle style, iLvCoord value)
{
    lv_style_set_pad_right((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_pad_row(pLvStyle style, iLvCoord value)
{
    lv_style_set_pad_row((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_pad_column(pLvStyle style, iLvCoord value)
{
    lv_style_set_pad_column((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_bg_color(pLvStyle style, uLvColor color)
{
    lv_style_set_bg_color((lv_style_t *)style, (lv_color_t)color);
}

void isd_style_set_bg_color_filtered(pLvStyle style, uLvColor color)
{
#if (LVGL_VERSION_MAJOR == 8) && (LVGL_VERSION_MINOR < 3)
    lv_style_set_bg_color_filtered((lv_style_t *)style, (lv_color_t)color);
#endif
}

void isd_style_set_bg_opa(pLvStyle style, uLvOpa opa)
{
    lv_style_set_bg_opa((lv_style_t *)style, (lv_opa_t)opa);
}

void isd_style_set_bg_grad_color(pLvStyle style, uLvColor color)
{
    lv_style_set_bg_grad_color((lv_style_t *)style, (lv_color_t)color);
}

void isd_style_set_bg_grad_color_filtered(pLvStyle style, uLvColor color)
{
#if (LVGL_VERSION_MAJOR == 8) && (LVGL_VERSION_MINOR < 3)
    lv_style_set_bg_grad_color_filtered((lv_style_t *)style, (lv_color_t)color);
#endif
}

void isd_style_set_bg_grad_dir(pLvStyle style, uLvGradDir dir)
{
    lv_style_set_bg_grad_dir((lv_style_t *)style, (lv_grad_dir_t)dir);
}

void isd_style_set_bg_main_stop(pLvStyle style, iLvCoord value)
{
    lv_style_set_bg_main_stop((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_bg_grad_stop(pLvStyle style, iLvCoord value)
{
    lv_style_set_bg_grad_stop((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_bg_grad(pLvStyle style, const binary_t * grad_dsc)
{
    lv_style_set_bg_grad((lv_style_t *)style, (lv_grad_dsc_t*)grad_dsc->data);
}

void isd_style_set_bg_dither_mode(pLvStyle style, uLvDitherMode value)
{
    lv_style_set_bg_dither_mode((lv_style_t *)style, (lv_dither_mode_t)value);
}

void isd_style_set_bg_img_src(pLvStyle style, const binary_t * value)
{
    lv_style_set_bg_img_src((lv_style_t *)style, (const void *)value->data);
}

void isd_style_set_bg_img_opa(pLvStyle style, uLvOpa opa)
{
    lv_style_set_bg_img_opa((lv_style_t *)style, (lv_opa_t)opa);
}

void isd_style_set_bg_img_recolor(pLvStyle style, uLvColor color)
{
    lv_style_set_bg_img_recolor((lv_style_t *)style, (lv_color_t)color);
}

void isd_style_set_bg_img_recolor_filtered(pLvStyle style, uLvColor color)
{
#if (LVGL_VERSION_MAJOR == 8) && (LVGL_VERSION_MINOR < 3)
    lv_style_set_bg_img_recolor_filtered((lv_style_t *)style, (lv_color_t)color);
#endif
}

void isd_style_set_bg_img_recolor_opa(pLvStyle style, uLvOpa opa)
{
    lv_style_set_bg_img_recolor_opa((lv_style_t *)style, (lv_opa_t)opa);
}

void isd_style_set_bg_img_tiled(pLvStyle style, bool value)
{
    lv_style_set_bg_img_tiled((lv_style_t *)style, value);
}

void isd_style_set_border_color(pLvStyle style, uLvColor color)
{
    lv_style_set_border_color((lv_style_t *)style, (lv_color_t)color);
}

void isd_style_set_border_color_filtered(pLvStyle style, uLvColor color)
{
#if (LVGL_VERSION_MAJOR == 8) && (LVGL_VERSION_MINOR < 3)
    lv_style_set_border_color_filtered((lv_style_t *)style, (lv_color_t)color);
#endif
}

void isd_style_set_border_opa(pLvStyle style, uLvOpa opa)
{
    lv_style_set_bg_opa((lv_style_t *)style, (lv_opa_t)opa);
}

void isd_style_set_border_width(pLvStyle style, iLvCoord value)
{
    lv_style_set_border_width((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_border_side(pLvStyle style, uLvBorderSide value)
{
    lv_style_set_border_side((lv_style_t *)style, (lv_border_side_t)value);
}

void isd_style_set_border_post(pLvStyle style, bool value)
{
    lv_style_set_border_post((lv_style_t *)style, value);
}

void isd_style_set_outline_width(pLvStyle style, iLvCoord value)
{
    lv_style_set_outline_width((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_outline_color(pLvStyle style, uLvColor color)
{
    lv_style_set_outline_color((lv_style_t *)style, (lv_color_t)color);
}

void isd_style_set_outline_color_filtered(pLvStyle style, uLvColor color)
{
#if (LVGL_VERSION_MAJOR == 8) && (LVGL_VERSION_MINOR < 3)
    lv_style_set_outline_color_filtered((lv_style_t *)style, (lv_color_t)color);
#endif
}

void isd_style_set_outline_opa(pLvStyle style, uLvOpa opa)
{
    lv_style_set_outline_opa((lv_style_t *)style, (lv_opa_t)opa);
}

void isd_style_set_outline_pad(pLvStyle style, iLvCoord value)
{
    lv_style_set_outline_pad((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_shadow_width(pLvStyle style, iLvCoord value)
{
    lv_style_set_shadow_width((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_shadow_ofs_x(pLvStyle style, iLvCoord value)
{
    lv_style_set_shadow_ofs_x((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_shadow_ofs_y(pLvStyle style, iLvCoord value)
{
    lv_style_set_shadow_ofs_y((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_shadow_spread(pLvStyle style, iLvCoord value)
{
    lv_style_set_shadow_spread((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_shadow_color(pLvStyle style, uLvColor color)
{
    lv_style_set_shadow_color((lv_style_t *)style, (lv_color_t)color);
}

void isd_style_set_shadow_color_filtered(pLvStyle style, uLvColor color)
{
#if (LVGL_VERSION_MAJOR == 8) && (LVGL_VERSION_MINOR < 3)
    lv_style_set_shadow_color_filtered((lv_style_t *)style, (lv_color_t)color);
#endif
}

void isd_style_set_shadow_opa(pLvStyle style, uLvOpa opa)
{
    lv_style_set_shadow_opa((lv_style_t *)style, (lv_opa_t)opa);
}

void isd_style_set_img_opa(pLvStyle style, uLvOpa opa)
{
    lv_style_set_img_opa((lv_style_t *)style, (lv_opa_t)opa);
}

void isd_style_set_img_recolor(pLvStyle style, uLvColor color)
{
    lv_style_set_img_recolor((lv_style_t *)style, (lv_color_t)color);
}

void isd_style_set_img_recolor_filtered(pLvStyle style, uLvColor color)
{
#if (LVGL_VERSION_MAJOR == 8) && (LVGL_VERSION_MINOR < 3)
    lv_style_set_img_recolor_filtered((lv_style_t *)style, (lv_color_t)color);
#endif
}

void isd_style_set_img_recolor_opa(pLvStyle style, uLvOpa opa)
{
    lv_style_set_img_recolor_opa((lv_style_t *)style, (lv_opa_t)opa);
}

void isd_style_set_line_width(pLvStyle style, iLvCoord value)
{
    lv_style_set_line_width((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_line_dash_width(pLvStyle style, iLvCoord value)
{
    lv_style_set_line_dash_width((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_line_dash_gap(pLvStyle style, iLvCoord value)
{
    lv_style_set_line_dash_gap((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_line_rounded(pLvStyle style, bool value)
{
    lv_style_set_line_rounded((lv_style_t *)style, value);
}

void isd_style_set_line_color(pLvStyle style, uLvColor color)
{
    lv_style_set_line_color((lv_style_t *)style, (lv_color_t)color);
}

void isd_style_set_line_color_filtered(pLvStyle style, uLvColor color)
{
#if (LVGL_VERSION_MAJOR == 8) && (LVGL_VERSION_MINOR < 3)
    lv_style_set_line_color_filtered((lv_style_t *)style, (lv_color_t)color);
#endif
}

void isd_style_set_line_opa(pLvStyle style, uLvOpa opa)
{
    lv_style_set_line_opa((lv_style_t *)style, (lv_opa_t)opa);
}

void isd_style_set_arc_width(pLvStyle style, iLvCoord value)
{
    lv_style_set_arc_width((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_arc_rounded(pLvStyle style, bool value)
{
    lv_style_set_arc_rounded((lv_style_t *)style, value);
}

void isd_style_set_arc_color(pLvStyle style, uLvColor color)
{
    lv_style_set_arc_color((lv_style_t *)style, (lv_color_t)color);
}

void isd_style_set_arc_color_filtered(pLvStyle style, uLvColor color)
{
#if (LVGL_VERSION_MAJOR == 8) && (LVGL_VERSION_MINOR < 3)
    lv_style_set_arc_color_filtered((lv_style_t *)style, (lv_color_t)color);
#endif
}

void isd_style_set_arc_opa(pLvStyle style, uLvOpa opa)
{
    lv_style_set_arc_opa((lv_style_t *)style, (lv_opa_t)opa);
}

void isd_style_set_arc_img_src(pLvStyle style, const binary_t * value)
{
    lv_style_set_arc_img_src((lv_style_t *)style, (const void *)value->data);
}

void isd_style_set_text_color(pLvStyle style, uLvColor color)
{
    lv_style_set_text_color((lv_style_t *)style, (lv_color_t)color);
}

void isd_style_set_text_color_filtered(pLvStyle style, uLvColor color)
{
#if (LVGL_VERSION_MAJOR == 8) && (LVGL_VERSION_MINOR < 3)
    lv_style_set_text_color_filtered((lv_style_t *)style, (lv_color_t)color);
#endif
}

void isd_style_set_text_opa(pLvStyle style, uLvOpa opa)
{
    lv_style_set_text_opa((lv_style_t *)style, (lv_opa_t)opa);
}

void isd_style_set_text_font(pLvStyle style, pLvTextFont value)
{
    lv_style_set_text_font((lv_style_t *)style, (const lv_font_t *)value);
}

void isd_style_set_text_letter_space(pLvStyle style, iLvCoord value)
{
    lv_style_set_text_letter_space((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_text_line_space(pLvStyle style, iLvCoord value)
{
    lv_style_set_text_line_space((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_text_decor(pLvStyle style, uLvTextDecor value)
{
    lv_style_set_text_decor((lv_style_t *)style, (lv_text_decor_t)value);
}

void isd_style_set_text_align(pLvStyle style, uLvTextAlign align)
{
    lv_style_set_text_align((lv_style_t *)style, (lv_text_align_t)align);
}

void isd_style_set_radius(pLvStyle style, iLvCoord value)
{
    lv_style_set_radius((lv_style_t *)style, (lv_coord_t)value);
}

void isd_style_set_clip_corner(pLvStyle style, bool value)
{
    lv_style_set_clip_corner((lv_style_t *)style, value);
}

void isd_style_set_opa(pLvStyle style, uLvOpa opa)
{
    lv_style_set_opa((lv_style_t *)style, (lv_opa_t)opa);
}

void isd_style_set_color_filter_opa(pLvStyle style, uLvOpa opa)
{
    lv_style_set_color_filter_opa((lv_style_t *)style, (lv_opa_t)opa);
}

void isd_style_set_anim_time(pLvStyle style, uint32_t value)
{
    lv_style_set_anim_time((lv_style_t *)style, value);
}

void isd_style_set_anim_speed(pLvStyle style, uint32_t value)
{
    lv_style_set_anim_speed((lv_style_t *)style, value);
}

void isd_style_set_blend_mode(pLvStyle style, uLvBlendMode value)
{
    lv_style_set_blend_mode((lv_style_t *)style, (lv_blend_mode_t)value);
}

void isd_style_set_layout(pLvStyle style, uint16_t value)
{
    lv_style_set_layout((lv_style_t *)style, value);
}

void isd_style_set_base_dir(pLvStyle style, uLvBaseDir value)
{
    lv_style_set_base_dir((lv_style_t *)style, (lv_base_dir_t)value);
}

int32_t isd_resource_add(const char * name, const binary_t * dsc, int32_t room)
{
    if (lvgl_isd_resource_exist(name)) {
        return -1;
    }
    lv_img_dsc_t img_dsc;
    if (dsc->dataLength != (sizeof (lv_img_dsc_t)-sizeof(const uint8_t *))) {
        return -1;
    }
    img_dsc = *(lv_img_dsc_t *)dsc->data;
    return lvgl_isd_resource_add(name, img_dsc, room);
}

void isd_resource_del(const char * name)
{
    lvgl_isd_resource_del(name);
}

void isd_resource_build(const char * name, const binary_t * context)
{
    lvgl_isd_resource_build(name, context->data, context->dataLength);
}

uint32_t isd_resource_check(const char * name)
{
    return lvgl_isd_resource_check(name);
}
